public class Listenknoten extends Listenelement
{
	//Attribute
	private Lehrer daten;
        private Listenelement nachf;
        
	//Konstruktor
	public Listenknoten(Lehrerverwaltung lehrv, Listenelement nachf, Lehrer daten)
	{
		this.lehrv = lehrv; //die dazugehörige Verwaltungsklasse
		this.nachf = null; //nachfolger in der Liste
		this.daten = daten; //das verwaltete Datenelement
	}
        
        public Listenknoten(Listenelement nachf, Lehrer daten)
        {
            this.daten = daten;
            this.nachf = nachf;
        }
	
	// gibt dazugeh�riges Datenelement aus
	public Lehrer datenGeben()
	{
		return daten;
	}
	
	//setzt neuen Nachfolger der Liste
	public void nachfSetzen(Listenelement l)
	{
		nachf = l;
	}
	
	//gibt  nachfolger
	public Listenelement nachfGeben()
	{
		return nachf;
	}
        
        public Lehrer lehrerHolen(String vn, String nn)
        {  //rekursives Suchen eines Lehrers in der Liste
            if (daten.nIstGleich(nn + vn)) //wenn Lehrer gefunden -> zurückgeben
            {
                return daten;
            } else { //wenn Lehrer nicht gefunden -> weitersuchen
                return nachf.lehrerHolen(vn, nn);
            }
        }
        
        public Listenknoten lehrerSpeichern(String vn, String nn, String kl, String raum)
        {
            if(daten.nIstGleich(nn + vn))
            {//Datensatz mit geänderten Daten aktualisieren
                daten.aktualisieren(vn, nn, kl, raum);
                return this;
            } else {
                if(daten.nIstKleiner(nn + vn))
                {//neuen Datensatz vor uns einfügen
                    Lehrer l_neu = new Lehrer(vn, nn, kl, raum);
                    Listenknoten k_neu = new Listenknoten(this, l_neu);
                    return k_neu;
                } else { //rekursiv weiter nach richtiger Position suchen
                    nachf = nachf.lehrerSpeichern(vn, nn, kl, raum);
                    return this;
                }
            }
        }
}